#include <iostream>

// 函数的定义
int add(int a, int b) {
    return a + b;
}

// 以数组作为函数参数
int sum(int arr[], int n) {
    int sum = 0;
    for(int i = 0; i < n; i++) {
        sum += arr[i];
    }
    return sum;
}

// 函数的嵌套调用
int multiply(int a, int b) {
    int result = 0;
    for(int i = 0; i < b; i++) {
        result = add(result, a);
    }
    return result;
}

// 函数的递归调用
int factorial(int n) {
    if(n == 0) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}

int main() {
    int arr[5] = {1, 2, 3, 4, 5};
    std::cout << "sum(arr, 5) = " << sum(arr, 5) << std::endl;
    std::cout << "multiply(3, 4) = " << multiply(3, 4) << std::endl;
    std::cout << "factorial(5) = " << factorial(5) << std::endl;
    return 0;
}